﻿#pragma once
#include "common.h"


//#define MAX_CONTACT_COUNT 150 // 静态版本：最大通讯录容量
#define DEFAULT_SIZE 10 // 动态版本：默认容量
#define ADD_SIZE 5 // 动态版本：每次增加的容量

typedef struct PersonInfo
{
    char name[50];
    int age;
    char sex[10];
    char phone[18];
    char address[200];
} info;

typedef struct Contact
{
    //int flag; // 静态版本标志位, 0: 未满, 1: 已满
    //info data[MAX_CONTACT_COUNT]; // 静态版本,定义一个通讯录数组,最大容量为 MAX_CONTACT_COUNT
    int save_flag; // 动态版本标志位, 0: 未保存, 1: 已保存
    int count; // 数组中已有元素个数
    int size; // 表示数组总容量
    info* data; // 动态版本, 定义一个指针, 指向一个动态数组, 容量由 size 变量控制
} contact;

FILE* fp; // 全局变量, 指向通讯录文件
char filename[200]; // 全局变量, 保存通讯录文件名

// 本通讯录主要功能:
extern void clean_buffer();
extern void contact_init(contact* p);
extern void add_contact(contact* p);
extern void show_contact(const contact* p);
extern void delete_contact(contact* p);
extern void modify_contact(contact* p);
extern void select_contact(const contact* p);
extern void sort_contact(contact* p);
extern void save_contact(contact* p);
extern void import_contact(contact* p);
